/*
 *  Для компіляції програми виконати наступну команду:
 *  g++ -fopenmp omp_lastprivate.cpp -o omp_lastprivate.run
 */
#include <stdio.h>
#include <omp.h>

int main()
{
  int idx = 100;
  int main_var = 2120;

  #pragma omp parallel for private(idx) lastprivate(main_var)
  // число 8 доцільно змінювати на кратне кількості процесорів/обчислювальних ядер у системі
  for (idx = 0; idx < 8; ++idx)
  {
    main_var = idx * idx;
    printf("У потоці %d idx = %d main_var = %d\n",
      omp_get_thread_num(), idx, main_var);
  }
  printf("Повернення у говний потік зі значенням змінної main_var = %d\n", main_var);
  return 0;
}
